package presentation;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.Iterator;
import java.util.Locale;
import java.util.ResourceBundle;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.SoftBevelBorder;
/**
 * Class ListenClassement
 * Package presentation
 * Gestion de l'affichage du classement via l'IHM
 * 
 * @author Herv Le Fouler et Lionel Lasry
 */
public class ListenClassement implements ActionListener {
	private JComboBox listeChampionnats;
	private String nomChampionnat;
	private JPanel zoneClassement;
	private JPanel labelClassement;
	public 	Locale local = Locale.getDefault();
	public 	ResourceBundle bundle = ResourceBundle.getBundle( "presentation/traduction", local);
	
	
	/**
	 * Constructeur de ListenClassement
	 * @param JComboBox listeChampionnats La combobox des championnats
	 */
	public ListenClassement(JComboBox listeChampionnats) {
		super();
		this.listeChampionnats = listeChampionnats;
	}
	
	public ListenClassement(String nomChampionnat,JPanel zoneClassement,JPanel labelClassement, JPanel labelEntete){
		super();
		this.nomChampionnat = nomChampionnat;
		this.zoneClassement = zoneClassement;
		this.labelClassement = labelClassement;
	}
	/**
	 * Mthode implment par ActionListener
	 * On rcupre le championnat slectionn dans la comboBox
	 * On cre une instance de ihmClassement avec le championnat rcupr
	 * On lance la fentre gnre
	 * @param ActionEvent evt
	 */
	public void actionPerformed(ActionEvent evt) {
		if (evt.getSource() instanceof JButton) {
			JButton src_button = (JButton)evt.getSource();
			//Cration championnat
			if (src_button.getText() == bundle.getString("voir_classement")){
				String nomChampionnat = listeChampionnats.getSelectedItem().toString();
				IhmClassement ihmMatch = new IhmClassement(nomChampionnat);
				ihmMatch.lancementEcranClassement();
			}
			if (src_button.getText() == bundle.getString("refresh_team")){
				ChampionnatInterface championnatClient;
				try {
					championnatClient = (ChampionnatInterface) Naming.lookup("Championnat");
					championnatClient.findChampionnat(nomChampionnat);
					championnatClient.getListeEquipes();
					labelClassement.removeAll();
					JLabel labelEnteteEquipe = new JLabel("Nom Equipe");
					JLabel labelEntetePoints = new JLabel("Points");
					JLabel labelEnteteGoalaverage = new JLabel("Goal Average");
					labelClassement.add(labelEnteteEquipe);
					labelClassement.add(labelEntetePoints);
					labelClassement.add(labelEnteteGoalaverage);
					JLabel label = new JLabel("Actualisation du classement du championnat "+nomChampionnat);
					for(Iterator i = championnatClient.getListeEquipes().iterator(); i.hasNext();){
						EquipeInterface e = (EquipeInterface) i.next();
						JLabel labelEquipeDynamique = new JLabel(e.getNom());
						JLabel labelPointsDynamique = new JLabel(""+e.getPoints());
						JLabel labelGoalDynamique = new JLabel(""+e.getGoalaverage());
						labelClassement.add(labelEquipeDynamique);
						labelClassement.add(labelPointsDynamique);
						labelClassement.add(labelGoalDynamique);
					}
				} catch (MalformedURLException e) {
					e.printStackTrace();
				} catch (RemoteException e) {
					e.printStackTrace();
				} catch (NotBoundException e) {
					e.printStackTrace();
				}
				zoneClassement.add(labelEntentePanel);

				
			}
		}
	}
}
